using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;

namespace Emlyn.Common.Tools.LayerInterfaces
{
    public interface IBaseDataLayer<T, TKey>
    {
        DataSet Select(TKey aKey);

        DataSet SelectAll();

        void Insert(T aInstance);

        void Update(T aInstance);

        void Delete(TKey aKey);

        List<SqlParameter> GetFullParameters(T aInstance);

        List<SqlParameter> GetKeyParameters(TKey aKey);

        TKey GetKey(T aInstance);
    }
}
